package com.dk.util.file;

import com.dk.exception.ExcelDataException;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * 文件操作工具类
 */
public class FileUtil {
    /**
     * 获取文件夹下所有文件的路径
     * @param folderPath 目标文件夹路径
     * @return 所有文件夹路径的数据
     */
    public static List<String> getFolderAllFilePath(String folderPath) throws ExcelDataException {
        //获取目标目录文件对象
        File file = new File(folderPath);
        //路径集合
        List<String> filePathList = new ArrayList<String>();
        //判断目录是否为文件夹
        if (!file.isDirectory()) {
            throw new ExcelDataException("----当前文件路径指定非文件夹,请检查数据路径:"+folderPath);
        } else if (file.isDirectory()) {
            //获取文件夹下所有文件名
            String[] filelist = file.list();
            //遍历所有文件名
            for (int i = 0; i < filelist.length; i++) {
                //拼接路径获取文件路径
                File readfile = new File(folderPath + "//" + filelist[i]);
                //递归调用
                if (!readfile.isDirectory()) {
                    filePathList.add(readfile.getPath());
                } else if (readfile.isDirectory()) {
                    getFolderAllFilePath(folderPath + "\\" + filelist[i]);
                }
            }
        }
        return filePathList;
    }
}


